package thread;

import com.sun.org.apache.xpath.internal.SourceTree;

import java.sql.SQLOutput;


/*
协调线程的同步运行可以使用线程的join方法
该方法允许一个线程在另一个线程上等待  直到该线程结束后才会结束等待继续后序工作

 同步运行  多个线程运行存在了先后顺序
 */
public class JoinDemo {
   private static boolean isFinish = false;
    public static void main(String[] args) {
        Thread download = new Thread(){
            public  void run(){
                System.out.println("down：开始下载图片。。");
                for (int i = 1; i <100; i++) {
                    System.out.println("dwon"+i+"%");
                    try {
                        Thread.sleep(50);
                    } catch (InterruptedException e) {
                    }
                }
                System.out.println("down：图片加载完毕");
                isFinish = true;
            }
        };
        Thread show = new Thread(){
            public void run (){
                System.out.println("开始显示列表文字");
                try {
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                }
                System.out.println("文字显示完毕");
                System.out.println("开始显示图片");
                try {//等待download完成
                    download.join();//阻塞作用
                } catch (InterruptedException e) {
                }
                if (!isFinish){
                    throw  new RuntimeException("图片加载失败");
                }
                System.out.println("显示图片完成");
            }
        };
        download.start();
        show.start();



    }
}
